This model fact represents Work Order transactions and is based on the IFS Applcations fact FACT_WORK_ORDER
Note: Please refer to documentation of each model to find out about attributes used in referenced models.
Attribute | Description (where applicable) |
Aggregation of measures is based on SUM if not explicitly noted.
This section describes the basic measures in the cube. These are either measures defined in the core Information Source, in the model itself or in the ETL process. The columns have the following meaning:
Measure | Calculated Y/N | Contains Time Intelligence Y/N | Definition/Note (where applicable) | Aggregation Type | Hidden Y/N | Tabular Expression |
Corrective Order Count | N | N | SUM | N | SUM([CORRECTIVE_COUNT]) | |
Deviation Early Actual vs Fixed Start Date Hours | Y | N | SUM | N | SUM([DEVIATION_FIXED_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Early Actual vs Late Start Date Hours | Y | N | SUM | N | SUM([DEVIATION_EARLIEST_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Early Actual vs Planned Finish Date Hours | Y | N | SUM | N | SUM([DEVIATION_PLAN_F_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Early Actual vs Planned Start Date Hours | Y | N | SUM | N | SUM([DEVIATION_PLAN_S_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Early Actual vs Required Finish Date Hours | Y | N | SUM | N | SUM([DEVIATION_REQ_END_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Early Actual vs Required Start Date Hours | Y | N | SUM | N | SUM([DEVIATION_REQ_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Fixed Start Date Hours | Y | N | SUM | N | SUM([ELAPSED_FIXED_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Late Start Date Hours | Y | N | SUM | N | SUM([ELAPSED_EARLIEST_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Planned Finish Date Hours | Y | N | SUM | N | SUM([ELAPSED_PLAN_F_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Planned Start Date Hours | Y | N | SUM | N | SUM([ELAPSED_PLAN_S_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Required End Date Hours | Y | N | SUM | N | SUM([ELAPSED_REQ_END_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Deviation Late Actual vs Required Start Date Hours | Y | N | SUM | N | SUM([ELAPSED_REQ_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Early Actual vs Fixed Start Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_FIXED_START]) | |
Early Actual vs Late Start Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_EARLIEST_START]) | |
Early Actual vs Planned Finish Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_PLANNED_COMPL]) | |
Early Actual vs Planned Start Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_PLANNED_START]) | |
Early Actual vs Required Finish Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_REQ_COMPL]) | |
Early Actual vs Required Start Count | N | N | SUM | N | SUM([EARLY_ACTUAL_VS_REQ_START]) | |
Elapsed Execution Time | Y | N | SUM | N | SUM([ELAPSED_EXECUTION_TIME])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Elapsed Time to Complete | Y | N | SUM | N | SUM([ELAPSED_TIME_TO_COMPLETE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Elapsed Time to Start | Y | N | SUM | N | SUM([ELAPSED_TIME_TO_START])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Elapsed Waiting Time | Y | N | SUM | N | SUM([ELAPSED_WAITING_TIME])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID]) | |
Fault Order Count | N | N | SUM | N | SUM([ORIGINATED_FROM_FAULT]) | |
Installation Order Count | N | N | SUM | N | SUM([INSTALLATION_COUNT]) | |
Job Plan Count | N | var totPlannedJobs = [Corrective Order Count]+[PM Order Count] RETURN IF(ISBLANK(totPlannedJobs),0,totPlannedJobs) | ||||
Late Actual vs Late Start Count | N | N | SUM | N | SUM([LATE_ACTUAL_VS_EARLIEST_START]) | |
Late Actual vs Planned Finish Count | N | N | SUM | N | SUM([LATE_ACTUAL_VS_PLANNED_COMPL]) | |
Late Actual vs Planned Start Count | N | N | SUM | N | SUM([LATE_ACTUAL_VS_PLANNED_START]) | |
Late Actual vs Required Finish Count | N | N | SUM | N | SUM([LATE_ACTUAL_VS_REQ_COMPL]) | |
Late Actual vs Required Start Count | N | N | SUM | N | SUM([LATE_ACTUAL_VS_REQ_START]) | |
MTFF Count | N | N | COUNT | N | COUNT('FACT WORK ORDER'[ELAPSED_TIME_TO_COMPLETE]) | |
MTFF Sum | N | N | SUM | N | SUM([ELAPSED_TIME_TO_COMPLETE]) | |
MTFS Count | N | N | COUNT | N | COUNT('FACT WORK ORDER'[ELAPSED_TIME_TO_START]) | |
MTFS Sum | N | N | SUM | N | SUM([ELAPSED_TIME_TO_START]) | |
MTTR Count | N | N | COUNT | N | COUNT('FACT WORK ORDER'[ELAPSED_EXECUTION_TIME]) | |
MTTR Sum | N | N | SUM | N | SUM([ELAPSED_EXECUTION_TIME]) | |
MWT Count | N | N | COUNT | N | COUNT('FACT WORK ORDER'[ELAPSED_WAITING_TIME]) | |
MWT Sum | N | N | SUM | N | SUM([ELAPSED_WAITING_TIME]) | |
Mean Time For Finish Work Days | Y | N | DIVIDE | N | DIVIDE(([MTFF Sum]/8),[MTFF Count]) | |
Mean Time For Finish Work Hours | Y | N | DIVIDE | N | DIVIDE([MTFF Sum],[MTFF Count]) | |
Mean Time For Finish Work Minutes | Y | N | DIVIDE | N | DIVIDE(([MTFF Sum]*60),[MTFF Count]) | |
Mean Time For Start Work Days | Y | N | DIVIDE | N | DIVIDE(([MTFS Sum]/8),[MTFS Count]) | |
Mean Time For Start Work Hours | Y | N | DIVIDE | N | DIVIDE([MTFS Sum],[MTFS Count]) | |
Mean Time For Start Work Minutes | Y | N | DIVIDE | N | DIVIDE(([MTFS Sum]*60),[MTFS Count]) | |
Modification Order Count | N | N | SUM | N | SUM([MODIFICATION_COUNT]) | |
Other Order Count | N | N | SUM | N | SUM([OTHER_COUNT]) | |
PM & PdM Corrective Order Count | N | SUM([SRC_WO_HAS_PM_TASK])+SUM([SRC_WO_HAS_PM_STEP]) | ||||
PM & PdM Effectiveness | N | DIVIDE ( CALCULATE ( [PM & PdM Corrective Order Count], FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "FINISHED", "REPORTED", "WORKDONE" } ) ), [PM & PdM Corrective Order Count] ) | ||||
PM & PdM WorkOrder Overdue (Days) | N | VAR overdue = DATEDIFF ( MAX ( 'FACT WORK ORDER'[DATE_REQUIRED_END] ), NOW (), DAY ) RETURN CALCULATE ( overdue, FILTER ( 'WORK ORDER', NOT ( 'WORK ORDER'[STATE_DB] IN { "FINISHED", "CANCELED" } ) ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 ) ) | ||||
PM & PdM/CBM Compliance | N | DIVIDE ( CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[DATE_REQUIRED_END] >= 'FACT WORK ORDER'[DATE_ACTUAL_COMPL] && ( 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 ) ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ) ), CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'FACT WORK ORDER', ( 'FACT WORK ORDER'[DATE_REQUIRED_END] <= NOW () && 'FACT WORK ORDER'[DATE_REQUIRED_END] <> BLANK () ) && ( 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 ) ) ) ) | ||||
Planner Productivity (Job Plans) Annually | N | AVERAGEX(VALUES('REPORTING DATE'[Reporting Year]),'FACT WORK ORDER'[Job Plan Count]) | ||||
Planner Productivity (Job Plans) Monthly | N | AVERAGEX(VALUES('REPORTING DATE'[Reporting Month]),'FACT WORK ORDER'[Job Plan Count]) | ||||
Planner Productivity (Job Plans) Quarterly | N | AVERAGEX(VALUES('REPORTING DATE'[Reporting Quarter]),'FACT WORK ORDER'[Job Plan Count]) | ||||
Planning Variance Index | N | DIVIDE ( CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[ACTUAL_COST_TO_PLAN] >= 90 && 'FACT WORK ORDER'[ACTUAL_COST_TO_PLAN] <= 110 ) ), CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[HAS_PLAN_LINE] = 1 ) ) ) | ||||
Preventive Order Count | N | N | SUM | N | SUM([PREVENTIVE_COUNT]) | |
Project Order Count | N | Y | SUM | N | SUM([PROJECT_COUNT]) | |
Project Rate % | Y | N | N | IF([Work Order Count]>0,[Project Order Count]/[Work Order Count], BLANK()) | ||
Service Order Count | N | N | SUM | N | SUM([SERVICE_COUNT]) | |
Work Order Age (Days) | N | CALCULATE ( DATEDIFF ( MAX ( 'FACT WORK ORDER'[DATE_CREATED] ), NOW (), DAY ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "WORKREQUEST", "FAULTREPORT", "UNDERPREPARATION", "PREPARED", "RELEASED", "WORKSTARTED" } ) ) | ||||
Work Order Count | N | N | COUNTROWS | N | COUNTROWS('FACT WORK ORDER') | |
Work Order Cycle Time | N | CALCULATE ( SUM ( 'FACT WORK ORDER'[WO Cycle Time] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ) ) |
Time based measures are calculated in the cube with respect to other measures. The table below defines the meaning/definition of the different time measures. These measures need to be used with a specific time dimension hierarchy [REPORTING_DATE].[RepDateMFHy].
Measure | Meaning |
YTD |
Aggregated value for current month in current year. E.g.
for period 202010 Ytd represents sum of periods 202000-202010. |
R12 |
For a given period, the sum all months from one year back up to the
previous month. E.g. Rolling 12 for 202010 is the sum of months 201910
- 202009 |
PY |
Previous Year The value of the corresponding month one year back. E.g. for month 202010, the value of month 201910. |
YTD PY |
Year to Date Previous Year Aggregated value for corresponding month one year back. E.g. for month 202010 YTD Previous Year represents sum of months 201901-201910. |
R12 PY |
Rolling 12 (completed) Months Previous Year For a given month, first going one year back, then taking the sum of all months from one (more) year back up to the previous month. E.g. for month 202010 the sum of month 201810-201909 |
Avg XXX Ytd | Sum XXX YTD/Count XXX YTD |
Avg XXX R12 | Sum XXX R12/Count XXX R12 |
XXX % YTD | Count XXX YTD/Count YYY YTD |
XXX % R12 | Count XXX R12/Count XXX R12 |
Model Name | Product Area |
Maintenance | Maintenance |
The data source for this object is defined using IFS Developer Tool. The data source contains a number of transformations where the model reads data from the last step, i.e. the Data source view name (DW Source View Name).
Additional information can be found in the online documentation of Information Sources.
Model Table | DW Source view (SQL Server) | BI Access View | Referenced Information Source | Recommended Access Type |
FACT WORK ORDER | FACT_WORK_ORDER_TM | FACT_WORK_ORDER_BI | FACT_WORK_ORDER | Data Mart |
N/A